不用科学上网的Vitis AI3.0 gpu docker镜像生成方法 | 您所在的位置:网站首页 › vitis dpu › 不用科学上网的Vitis AI3.0 gpu docker镜像生成方法 |
本文转载自:ATM.ZDark的CSDN博客 vitis-AI最近更新了3.0版本,对很多深度学习模型作了适配,在docker环境方面对cpu和A卡的ROCm生态提供预编译镜像,但是CUDA生态下的docker镜像还是需要自己生成。本人因个人原因,无法在电脑上安装科学上网工具,但是vitis-AI的docker生成需要大量利用apt,python,github等工具进行下载,所以就有了这篇博客作为流程记录。能科学上网的不用看了,直接按官方手册的一键生成就行。本文以带Vitis-AI优化器的pytorch环境生成为例,tf类似 vitis-AI3.0官方手册 工作环境 Ubuntu20.04(官方手册上只有这个) docker23.0.1和nvidia-docker2.12.0(网上这方面资料多,就不展开讲了) Vitis-AI3.0(2023.4.1在官方github上git下来的源代码) 官方代码的docker镜像生成流程 1.pull一个nvidia提供的cuda镜像 2.安装基础组件 (位于/Vitis-AI/docker/common/install_base.sh文件中 3.安装conda环境 (位于/Vitis-AI/docker/common/install_conda.sh文件中 4.安装指定Vitis-AI工具环境 (位于/Vitis-AI/docker/common/install_opt_pytorch.sh文件中 不使用科学工具的流程介绍 cuda镜像的内部修改 1.获取cuda镜像 sudo docker pull nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04 2.将镜像放入容器中打开,类似修改apt下载源 首先进行文件准备 编辑一个名为source.list的文件,内容如下 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse 顺便在外面下载几个后续用得到的大文件一起挂载进去,后面直接用现成的,不然在指令过程中大文件下载卡住了就麻掉了 下载后改名为conda-channel.tar.gz 下载后改名为miniconda.sh 将上述三个文件放到Vitis-AI目录中一起挂载到docker镜像中去 3.用容器打开docker镜像 sudo docker run -v /home/Vitis-AI:/workspace -it 27caf6be35bd /bin/bash 4.将准备好的文件从挂载文件夹复制到docker容器中 cp /workspace/source.list /etc/apt cp /workspace/conda-channel.tar.gz /home cp /workspace/miniconda.sh /home 5.退出容器 exit 6.将修改后的docker容器保存为镜像并导出为tar文件 sudo docker commit 50684042ac28 sudo docker save -o ./vitis-ai-gpu_3.0.tar ff6de0ea4af2 7.删除前面生成的所有容器和镜像(先删除容器,再按从后到前的生成顺序删除镜像 sudo docker rm 容器ID sudo docker rmi 镜像ID 8.将tar文件导入并把名字换成之前pull的cuda镜像的名字,就成功完成了apt换源并将需要的大文件放入了镜像中,然后官方的docker生成代码会找到这个名字的cuda镜像进行后续处理 sudo docker load -i ./vitis-ai-gpu_3.0.tar sudo docker tag ff6de0ea4af2 nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04 官方docker生成代码修改 1.python下载源修改 在Vitis-AI/docker/common/install_base.sh文件第286行添加 pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 在Vitis-AI/docker/common/install_opt_pytorch.sh文件第41行添加 && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \ 2.github下载链接修改 如果愿意翻官方给的docker代码,可以将所有github.com换为hub.fastgit.org (或者其他好用的下载源)。(Vitis-AI3.0把docker文件拆分成了若干个,虽然在安装方面不用强制安装其他不需要的工具了,但是代码翻起来比2.5的麻烦多了,找来找去的。这里列出来几个需要改的 Vitis-AI/docker/common/install_base.sh文件305行 Vitis-AI/docker/common/install_base.sh文件328行 3.将几个大文件的下载指令改为复制指令 修改Vitis-AI/docker/common/install_opt_pytorch.sh文件第8行 修改前 wget -O conda-channel.tar.gz --progress=dot:mega ${VAI_CONDA_CHANNEL}; \ 修改后 cp /home/conda-channel.tar.gz ./; \ 修改Vitis-AI/docker/common/install_conda.sh文件(这里不知道为什么为指令输入gpu但是他还是进了rocm的if支线中,所以我干脆按照Vitis-AI2.5的docker文件格式作了整体修改) 修改前 #!/bin/bash set -ex if [[ ${DOCKER_TYPE} =~ .*'rocm'* && ${TARGET_FRAMEWORK} =~ .*"pytorch" ]]; then ln -s /opt/conda $VAI_ROOT/conda; else export HOME=~vitis-ai-user if [[ -d "/root/.local" ]]; then sudo chmod -R 777 /root/.local fi sudo chmod 777 /root /root/.local /root/.local/bin || true cd /tmp \ && wget --progress=dot:mega https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mamb... -O miniconda.sh \ && /bin/bash ./miniconda.sh -b -p $VAI_ROOT/conda \ && . $VAI_ROOT/conda/etc/profile.d/conda.sh \ && conda install -y conda-build \ && rm -fr /tmp/miniconda.sh \ && /$VAI_ROOT/conda/bin/conda clean -y --force-pkgs-dirs fi echo ". $VAI_ROOT/conda/etc/profile.d/conda.sh" >> ~vitis-ai-user/.bashrc sudo ln -s $VAI_ROOT/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh 修改后 #!/bin/bash set -ex export HOME=~vitis-ai-user if [[ -d "/root/.local" ]]; then sudo chmod -R 777 /root/.local fi sudo chmod 777 /root /root/.local /root/.local/bin || true cd /tmp \ && sudo cp /home/miniconda.sh ./ \ && sudo chmod +777 ./miniconda.sh \ && /bin/bash ./miniconda.sh -b -p $VAI_ROOT/conda \ && . $VAI_ROOT/conda/etc/profile.d/conda.sh \ && conda install -y conda-build \ && sudo rm -fr /tmp/miniconda.sh \ && /$VAI_ROOT/conda/bin/conda clean -y --force-pkgs-dirs echo ". $VAI_ROOT/conda/etc/profile.d/conda.sh" >> ~vitis-ai-user/.bashrc sudo ln -s $VAI_ROOT/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh 生成docker 进入Vitis-AI/docker文件夹(这里根据自己需要的环境修改参数,参考Vitis3.0的官方文档修改即可 sudo ./docker_build.sh -t gpu -f opt_pytorch |
CopyRight 2018-2019 实验室设备网 版权所有 |